home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Format 1994 August
/
August CD.bin
/
Shareware
/
Games
/
Core War
/
Battle Programs
/
contest92
/
A09 Buffy□
< prev
next >
Wrap
Text File
|
1992-12-09
|
5KB
|
128 lines
;Buffy the Vampire Slayer
; by Chris Lindensmith
; ICWS '88
; for 1992 Tournament
; vampiric fast bomber, with bailout to mouse, snake
;With bomber and bail out into mice
BD EQU 10 ; HOW FAR AHEAD TO HIT VAMPIRE
BL EQU 17 ; HOW MANY TO THROW AT VAMPIRE
PSPACE EQU 1000 ; PICKET DISTANCE
MPSPACE EQU -1000 ; MINUS PICKET DISTANCE
BSTART EQU 1017 ; START BOMBING AT
WALL EQU 21 ; PICKET SIZE
LENGTH EQU PSPACE+PSPACE+WALL+WALL-18 ; DON'T BOMB THIS SECTION
SPREAD EQU 61 ; BOMB INTERVAL
START JMP SETPICK1 ; JUMPS TO WHERE THE ACTION
;
; This part looks at where the vampire is telling you to go and
; starts bombing it.
; 18 LINES
SLAT DAT 5 5 ; A slat in the picket fence
COUNT DAT 0 ; count the hammer blows
STAKE ADD @LOC1 LOC1 ; put a stake through the heart of
ADD @LOC1 LOC1
ADD #BD LOC1 ; HIGHER SPEED
MOV #BL COUNT ; the vampire-- aim for everything
POUND MOV COUNT <LOC1 ; 15 above or below the storage
DJN POUND COUNT ; pen for the poor victims
MOV #WALL CNT1 ;
MOV #MPSPACE LOC1 ;
SPL SNAKE
JMP COPY ; RUN
;
STAKE2 ADD @LOC2 LOC2 ; need a separate killer for
ADD @LOC2 LOC2
ADD #BD LOC2 ; FOR HIGHER SPEED
MOV #BL COUNT ; each of the pickets
POUND2 MOV COUNT <LOC2 ; to avoid double indirection in the
DJN POUND2 COUNT ; pound statements.
MOV #WALL CNT2
MOV #PSPACE LOC2
SPL SNAKE
JMP COPY ;
; Set up the pickets 22 LINES
;
;
CNT1 DAT WALL
CNT2 DAT WALL
LOC1 DAT MPSPACE ; target for the lower picket
LOC2 DAT PSPACE
;
;
SETPICK1 MOV SLAT <LOC1 ; setup the lower pickets
SETPICK2 MOV SLAT <LOC2 ; setup the upper pickets
DJN SETPICK1 CNT2
SPL START2
CHECK1 MOV #MPSPACE LOC1 ; CHECKS THE LOWER PICKET
MOV #WALL CNT1 ; INITIALIZE THE LOOP
CHECK2 MOV #PSPACE LOC2 ; CHECKS THE UPPPER PICKET
LOOP1 CMP <LOC1 SLAT ; CHECK THE PICKET #1
JMP STAKE ; PICKETS BEEN HIT
LOOP2 CMP <LOC2 SLAT ; CHECK THE PICKET #2
JMP STAKE2 ; PICKETS BEEN HIT
DJN LOOP1 CNT1 ; LOOP BACK TO COVER WHOLE PICKET
JMP CHECK1 ; RESTART PICKET CHECK
;
;
;bomb memory 18 LINES
; This is the vampiric part
;
BOMB DAT 0 #START-BOMB
TRAP ADD #-1 VCNT
VCNT SPL TRAP 64
ADD #-1 BOMB
SLT #200 BOMB
JMP AHEAD
MOV BOMB @BOMB
AHEAD JMN VCNT VCNT
MOV BOMB VCNT
DAT 0 0
;
; THIS THROWS THE JMP BOMBS to the vampire
;
BOMBA JMP @0 BSTART+WALL
START2 MOV #0 TRAP-BSTART-WALL
LOOP ADD #SPREAD BOMBA
SUB #SPREAD TRAP-BSTART-WALL
SLT #LENGTH TRAP-BSTART-WALL
JMP LOOP
MOV BOMBA @TRAP-BSTART-WALL
JMP LOOP
; The pickets have been hit and we've responded as if
; it were a vampire. If it is then we've won, if it's not
; then we need to change strategies to small & fast, leaving
; the bomber running
;
; TURN MOUSE 13 LINES
COPY MOV #9 CCNT
ADD #1333 CTARG
MOV #1 TOP
CLOOP MOV <TOP <CTARG ; MAKE THE MOVE
DJN CLOOP CCNT ; DONE COPYING?
CTARG SPL @CTARG CTARG ;
JMP COPY
CCNT DAT CCNT ; COPY COUNTER
TOP DAT #1 ; TOP OF PROGRAM INDICATOR
SNAKE SPL 2 27
DJN SNAKE SNAKE
MOV 0 1
DAT 0 0
DAT 0 0
DAT 0 0
DAT 0 0
DAT 0 0
DAT 0 0
END END START